table of contents
MBOX(5) | Manuel de l'utilisateur | MBOX(5) |
NOM¶
mbox - Format d'enregistrement de courrier électronique
DESCRIPTION¶
Ce document décrit le format traditionnellement utilisé par les machines Unix pour stocker localement la messagerie électronique. Les fichiers mbox résident généralement dans le spoule de messagerie du système, dans les répertoires Mail des utilisateurs sous différents noms, et dans les répertoires racines des utilisateurs sous le nom mbox.
Une boîte mbox est un fichier texte contenant un nombre arbitraire de courriers électroniques. Chaque message consiste en un cachet, suivi par un message formaté selon la RFC 822. Le format du fichier est de type "orienté-ligne". Les lignes sont séparées par des caractères de fin de ligne (line-feed, ASCII 10).
Une ligne de cachet est constituée en séquence des quatre caractères "From", un caractère espace, l'adresse de l'émetteur de l'enveloppe du message, un caractère espace, et d'une indication temporelle (time-stamp). L'adresse de l'émetteur est censée être au format addrspec décrit en annexe D de la RFC 822.
La date doit être formatée suivant la syntaxe suivante (proposée dans le formalisme étendu de Backus-Naur utilisé par la RFC 822) :
mbox-date | = | weekday month day time [ timezone ] year |
weekday | = | "Mon" / "Tue" / "Wed" / "Thu" / "Fri" |
/ "Sat" / "Sun" | ||
month | = | "Jan" / "Feb" / "Mar" / "Apr" / "May" |
/ "Jun" / "Jul" / "Aug" / "Sep" | ||
/ "Oct" / "Nov" / "Dec" | ||
day | = | 1*2DIGIT |
time | = | 1*2DIGIT ":" 1*2DIGIT [ ":" 1*2DIGIT ] |
timezone | = | ( "+" / "-" ) 4DIGIT |
year | = | ( 4DIGIT / 2DIGIT ) |
Pour des raisons de compatibilité avec les logiciels existants, les années codées sur deux chiffres supérieures ou égales à 70 devraient être interprétées comme les années suivant 1970, et les années codées sur deux chiffres inférieures à 70 devraient être interprétées comme les années comprises entre 2000 et 2069.
Les logiciels exploitant les fichiers de ce format doivent aussi prévoir des informations de zone horaire non numériques, comme "CET DST" pour "Central European Time, Dailight Saving Time".
Exemple :
- From roessler@does-not-exist.org Fri Jun 23 02:56:55 2000
Afin d'éviter des erreurs d'interprétation pour des lignes du corps du message qui commenceraient par les quatre caractères "From" suivis par un caractère espace, le caractère ">" et habituellement ajouté au début de telles lignes.
VERROUILLAGE¶
Parce que les fichiers mbox sont régulièrement lus par plusieurs programmes en parallèle, ils ne devraient en général pas être accédés sans verrouillage.
Trois types différents de mécanismes de verrouillage (et leurs combinaisons) sont utilisés en général :
- le verrouillage avec fcntl(2) est principalement utilisé sur les systèmes compatibles POSIX récents. L'utilisation de cette méthode de verrouillage est en particulier indiquée si les fichiers mbox sont atteints à travers un système de fichiers déporté par NFS, puisque cela semble être la seule façon fiable d'invalider les caches des clients NFS.
- le verrouillage flock(2) est principalement utilisé sur les systèmes basés sur BSD.
- le verrouillage "dotlocking" est utilisé sur tous les types de système. Pour verrouiller un fichier mbox nommé folder, une application crée en premier lieu un fichier temporaire avec un nom unique dans le répertoire où se trouve le fichier folder. L'application essaye alors d'utiliser l'appel système link(2) pour créer un lien physique (hard link) nommé folder.lock vers le fichier temporaire. Le succès de l'appel système link(2) devrait être également vérifié en utilisant des appels stat(2). Si la création du lien a réussi, la boîte de courrier est considérée comme verrouillée ("dotlocked"). Le fichier temporaire peut alors être libéré sans crainte.
- Pour relâcher le verrou, l'application a juste à libérer le fichier folder.lock.
Si plusieurs méthodes sont combinées, les responsables de l'implémentation doivent s'assurer d'utiliser des variantes non bloquantes des appels systèmes fcntl(2) et flock(2) afin d'éviter des inter-blocages.
Si plusieurs méthodes sont combinées, un fichier mbox ne doit pas être considéré comme ayant été verrouillé avec succès avant que chaque verrou n'ait été obtenu. Si une des méthodes de verrouillage échoue, une application devrait libérer tous les verrous qu'il a acquis avec succès, et recommencer entièrement la procédure de verrouillage depuis le début, après avoir attendu un délai adéquat.
Le mécanisme de verrouillage utilisé sur un système donné est une affaire de politique locale, et devrait être utilisé de manière uniforme par toutes les applications installées sur le dit système qui accèdent aux fichiers mbox. Ne pas suivre cette préconisation peut entraîner des pertes de données de messagerie et la corruption de fichiers mbox.
FICHIERS¶
- /var/spool/mail/utilisateur
- Boîte de courrier entrant pour utilisateur.
- ~utilisateur/mbox
- Boîte de courriers archivés pour utilisateur, dans son répertoire racine.
- ~utilisateur/Mail/
- Sous-répertoire du répertoire racine de utilisateur, qui est souvent utilisé pour stocker les boîtes de courrier au format mbox.
VOIR AUSSI¶
elm(1), fcntl(2), flock(2), link(2), local(8), mail(1), maildir(5), mail.local(8), mutt(1), mutt_dotlock(1), pine(1), procmail(1), sendmail(8)
D. Crocker, Standard for the format of ARPA Internet text messages, RFC 822
M. R. Horton, UUCP mail interchange format standard, RFC 976
AUTEUR¶
Ce document a été écrit par Thomas Roessler <roessler@does-not-exist.org>.
TRADUCTION¶
Benoît Friry, 2002
HISTORIQUE¶
Le format mbox est apparu dans la version 6 de AT&T Unix.
Une variante de ce format a été décrite dans la RFC 976.
1er août 2000 | Unix |